Infrared methods such as IrDA (Infrared Data Association) are available as an interface for connecting a mobile phone with a television, a printer, or a PC (Personal Computer) (see Non Patent Literature 1 through 5).
IrDA and like infrared communications schemes are directional; if there is an obstacle between the communication apparatuses, data cannot be transferred. With a line of sight between the apparatuses, however, a high speed data transfer is possible. IrDA standards include Very Fast IR (VFIR) with a maximum transfer rate of 16 Mbps, Fast IR (FIR) with a maximum transfer rate of 4 Mbps, and Serial IR (SIR) with a transfer rate of up to 115.2 (inclusive of 115.2 kbps). Currently available IrDA standards on the market are those with a maximum transfer rate of up to 4 Mbps.
An IrDA connection routine for the IrLAP layer will be described in reference to FIG. 6 illustrates a signal sequence for the establishment of an IrLAP layer connection as specified by IrDA.
A primary station, or device, is a station which initiates a discovery of an opposite station, that is, which requests an establishment of a data transfer state, and is a station which transmits a station discovery command (XID (exchange station identification) command). A secondary station, or device, is a station which receives the request, and is a station which transmits a station discovery response (XID response) to the station discovery command. A request or instruction transmitted from the primary station to the secondary station is termed as a command. A reply to the command, transmitted the other way from the secondary station to the primary station, is termed as a response.
The XID command is a command with which to discover a secondary station candidate within the communications range of the primary station. The numbers in parentheses are SlotNumbers in hexadecimal notation. The Slotnumbers indicate the transmission sequence of commands.
Upon receiving an XID command, the secondary station returns an XID response, informing the primary station of its presence. The primary station transmits a specified number of XID commands. The primary station then sets the SlotNumber of the last XID command to 0xFF, a number indicating that the command is the last one (XID-End).
The primary station forwards, in an SNRM (set normal response mode) command, its maximum transfer rate, maximum incoming data length, and other necessary parameters for communications to the secondary station. Receiving the command, the secondary station compares the parameters to its own settings and informs the primary station of acceptable settings in a UA response.
After establishing an IrLAP connection using IrLAP command packets, IrLMP, TinyTP, and OBEX connections are negotiated using IrLAP data packets.
An IrLMP connect request is forwarded via IrLAP data packets from the primary station to the secondary station. An IrLMP connect response is returned via IrLAP data packets from the secondary station to the primary station, establishing an IrLMP connection.
Next, a TinyTP connect request is forwarded to the secondary station via the IrLAP data packets. A TinyTP connect response is returned from the secondary station is transferred to the primary station via the IrLAP data packets, establishing a TinyTP connection.
Furthermore, an OBEX connect request is forwarded via IrLAP data packets from the primary station to the secondary station. An OBEX connect response is returned from the secondary station to the primary station, establishing an OBEX connection. That renders the stations ready for user data transfer.
For disconnection, an OBEX disconnect request and response, a TinyTP disconnect request and response, and an IrLMP disconnect request and response are exchanged via IrLAP data packets. A DISC command (IrLAP disconnect request command packet) and a UA response (IrLAP respond command packet) are then exchanged. The exchanges disconnect the primary station from the secondary station.
The IrDA connection routine above takes an extended period of time before the stations are ready for user data transfer, lowering transfer efficiency. Specifically, IrDA specifies that station discovery through sensing and using XID commands, and negotiation parameter exchange using an SNRM command and a UA response are needed before the establishing of a connection. IrDA stipulates that the transfer rate be limited to 9,600 bps during the XID-based station discovery. The rate is far lower than the user data transfer rate (4 Mbps). In addition, as mentioned above, after the IrLAP layer has been connected, the IrLMP, TinyTP, and OBEX layers need to be sequentially connected so that the stations are ready for data transfer. As such, an overhead for carrying out data transmission becomes great. Hence, the IrDA is not suitable for efficiently transmitting and receiving a large volume of data.
Accordingly, as a measure for improvement in convenience in infrared communications, a communication protocol “IrSimple” was standardized in the year 2005. This “IrSimple” reduces the time taken to establish a connection to achieve high efficiency in communications, from the issuing of a connect request to disconnecting (see Non Patent Literature 6 through 8, and Patent Literature 1). Although the IrSimple is developed from IrDA with improvements in some functionality, the IrSimple involves no communications in relation to station discovery, taking less time to establish a connection than conventional IrDA. IrSimple reduces communications time by a factor of 4 to 10 over conventional IrDA for the same volume of data.
“IrSimple” provides for two communication modes: unidirectional communications and bidirectional communications. In unidirectional communications, the connect and disconnection routines are so simplified as to be complete by carrying out just one pair of packet exchange, to reduce connect and disconnect times. The retransmission routine upon error detection in data transfer is also simplified to achieve high transfer rates.
An IrSimple connection routine for the IrLAP layer in unidirectional communications will be described in reference to FIG. 7 illustrates an IrSimple-compliant signal sequence for the establishment of an IrLAP layer connection in unidirectional communications. As shown in FIG. 7, a primary station sends an SNRM command (connect request command) without sending a station discovery command with which to confirm the presence of a secondary station. The primary station, having sent the SNRM command, starts a data transfer without waiting for a UA response (response command packet) from the secondary station. Meanwhile, having received the SNRM command, the secondary station waits for the data transfer from the primary station without returning a UA response. If the incoming SNRM command includes no data for upper layers, the secondary station may dismiss it as an illegal connect request and not enter a data transfer standby state.
Next, an IrSimple connection routine for the IrLAP layer in bidirectional communications will be described in reference to FIG. 8 illustrates an IrSimple-compliant signal sequence for the establishment of an IrLAP layer connection in bidirectional communications.
As shown in FIG. 8, the primary station sends an SNRM command (connect request command) without sending a station discovery command with which to confirm the presence of a secondary station. Having received the SNRM command, the secondary station sends a UA response (response command packet). As the primary station receives the UA response, the connecting of the LAP, LMP, SMP, and OBEX layers are all completed. That is to say, the LMP, SMP, and OBEX layers do not need to be sequentially connected after the LAP layer is connected.
The following description explains the SNRM command specified in the IrSimple protocols, with reference to FIG. 9. FIG. 9 is an explanatory view illustrating a frame containing the SNRM command.
The “A (Address) field” is a field to be used to negotiate a connection and contains a 7-bit connection address and a 1-bit C/R (Command/Response) identifier. In FIG. 8 where a pre-connection SNRM command is shown, since the connection is not established yet, the connection address is “0x7F” which indicates a broadcast address. The C/R bit is set as “1”, indicating that this packet is a command. The A field in the SNRM command in FIG. 8, a combination of the address and the C/R bit, is “0xFF”.
The “C (Control) field” is a control field for the packet. Since the packet is an SNRM command, the C field value is either “0x93” for bidirectional communication or “0x83” for unidirectional communication, both indicating an SNRM in unnumbered format (U format). FIG. 8 shows a sequence in bidirectional communication; therefore the C field value is “0x93”.
The “Source Address” is a field indicating the address of the source device (primary station), and assumes a value other than “0” and “0xFFFFFFFF”.
The “Destination device Address” is a field indicating the address of the destination device (secondary station). In FIG. 8 where a pre-connection SNRM command is shown, since the connection is not established yet, the destination device address is equal to “0xFFFFFFFF” which indicates a broadcast address.
The “Connection device Address” contains a new 7-bit connection address used after successfully establishing a connection and a 1-bit C/R bit which is always set to “0”. The connection address is set to any value by the primary station.
The “Requested-QoS Parameters” is a field indicating QoS (Quality of Service) parameter values, including the transfer rate and a maximum turnaround time supported by the primary station.
The “Upper User Data” is a field describe the data used by the layers above the IrLAP layer. For example, the Upper User Data describes an SMP parameter, a CONNECT command (OBEX connect request), and the like.
The following description explains the UA response specified in the IrSimple protocols, with reference to FIG. 10. FIG. 10 is an explanatory view illustrating a UA response frame.
The “A (Address) field” contains the 7-bit address specified in the “Connection device Address” of the corresponding SNRM command. The “A field” also contains a 1-bit C/R bit which is set to “0”, indicating that this packet is a response.
The “C (Control) field” is set to “0x73”, an indication of a UA response in unnumbered format (U format), because this packet is a UA response packet.
The “Source device Address” is the 32-bit address determined by the secondary station and assumes a value other than “0” and “0xFFFFFFFF”.
The “Destination device Address” is a field indicating the address of the destination device (primary station) which is equal to the address of the primary station communicated in the Source device Address of the corresponding SNRM command packet.
“Responsed-QoS Parameters” is a field containing QoS parameters determined from the Requested-QoS Parameters given by the primary station and the QoS parameters of the secondary station.
“Upper User Data” is a field to describe the data used by the layers above the IrLAP layer. For example, the “Upper User Data” includes SMP (upper layer) parameters and a Success response to the OBEX connect request.
A communication apparatus which strictly adheres to both the IrDA and IrSimple protocol specifics, when a connection between a communication apparatus of the secondary station is attempted, automatically switches between the protocols (see Non Patent Literature 6) in accordance with a reaction from the secondary station. That is to say, the communication apparatus connects to the secondary station based on the IrDA protocols when the secondary station responds to the IrDA protocols, and when the secondary station responds to IrSimple bidirectional communications, the secondary station connects based on the IrSimple bidirectional communications.
The following description explains a routine for the communication apparatus to switch between the IrSimple protocol and the IrDA protocol with reference to FIG. 11. FIG. 11 is a signal sequence followed when the communication apparatus switches between IrSimple and IrDA.
The primary station attempts to connect to the secondary station by repeating the routines (1) to (3) described below. The SNRM command and the XID command below are transmitted at 9,600 bps.
(1) The primary station attempts to connect based on the IrSimple protocol. Thus, the primary station transmits the SNRM command as specified in the IrSimple protocols.
(2) If the secondary station does not respond, the primary station attempts to connect based on the IrDA protocol. Thus, the primary station transmits a 1-slot XID command to discover the secondary station.
(3) If the secondary station does not respond, the primary station terminates the station discovery by transmitting an XID-End command and makes another attempt to connect based on the IrSimple protocols. Thus, the primary station transmits an SNRM command as specified in the IrSimple protocols.
A frame arrangement of the SNRM command which is transmitted in the routines (1) to (3) is the same as FIG. 9.
The secondary station which receives the packets that are successively sent thereto responds to this packet if the packet received is a legal packet specified by a protocol supported by the secondary station. That is to say, if the secondary station supports the IrSimple protocol, a UA response is returned to an SNRM command of the routine (1) or (3), and if the secondary station supports the IrDA protocol, an XID response is returned to an XID command of the routine (2). Further, if the secondary station supports both the IrSimple and IrDA protocol specifics, a stipulation in the IrSimple protocol is applied in how to respond. The IrSimple protocol stipulates that the secondary station returns no XID response frame unless it receives two XID command (SlotNumber 0x00)s (see Non Patent Literature 6). Due to this stipulation, the XID response packet is not returned straight away even if the packet of the routine (1) is missed and the packets from the routine (2) are received. As a result, such secondary station returns the UA response to the IrSimple SNRM command of the routine (3), and as a result establishes a connection based on the IrSimple protocol.
The following description explains the XID command (IrDA station discovery command) with reference to FIG. 12. FIG. 12 is an explanatory view illustrating a frame of the XID command issued in the routine (2).
The “A field” is the same as the one described above; its value is “0xFF”.
The “C field” is the same as the one described above; its value is “0x3F”, indicating an XID command frame.
The “format Identifier” is an extension identifier, typically equal to “0x01”.
The “Source device Address” field is the same as the one described above.
The “Destination device Address” field is the same as the one described above.
The “Discovery Flags” is a field indicating the number of slots of an XID command (a number of opposite stations simultaneously searched for). In the example shown in FIG. 11, the XID command has 1 slot; the discovery flags field contains a value “0x00”.
The “Slot Number” is a field indicating the current slot number. The numbers are assigned sequentially. The Slot Number of the first XID command packet in FIG. 11 is “0x00”. For the XID-End command packet which is the last XID command packet, the Slot Number is “0xFF”, which indicates that this packet is the last packet.
The “Version Number” is a field indicating the version number of the IrLAP. For version 1.1, the Version Number is “0x00”.
The “Discovery Info” is a field that is appended only to the XID-End command packet which is the last command. This field contains any information obtained in the station discovery, including station information such as the device name of the primary station.
A signal sequence followed when the secondary station strictly adhering to the IrSimple bidirectional communications connects to the primary station strictly adhering to both the IrDA and IrSimple protocol specifics, is as similar to FIG. 8. That is to say, the primary station sends the SNRM command (connect request command) without sending a station discovery command with which to confirm the presence of the secondary station. Having received the SNRM command, the secondary station sends a UA response (response command packet). As the primary station receives the UA response, the connecting of the LAP, LMP, SMP and OBEX layers are all completed.
The SNRM command is transmitted at 9600 bps, and the UA response is transmitted at 115.2 kbps. Therefore, the primary station waits for the UA response, ready to inbound frames at 115.2 kbps, after transmitting the SNRM command.
The following description explains a connection routine for a communication apparatus which strictly adheres to both the IrDA and IrSimple protocol specifics and another communication apparatus which strictly adheres only to the IrDA protocol specifics with reference to FIG. 13. FIG. 13 is a signal sequence followed when the primary station strictly adhering to both the IrDA and IrSimple protocol specifics connects to the secondary station which strictly adheres to only the IrDA protocol specifics.
As illustrated in FIG. 13, the primary station transmits an SNRM command (connect request). The secondary station however does not respond to this packet for the following reason. A packet in which both the “A field” and the “Destination device Address” contain a broadcast address (hereinafter referred to as “broadcast packet”) is not a legal packet specified in the IrDA protocol. The IrDA protocol stipulates that a device return no response to such an illegal packet (see Non Patent Literature 1).
The SNRM command issued by the primary station in FIG. 13 is a broadcast frame; the secondary station, strictly adhering to the IrDA protocol specifics, does not respond to the SNRM command.
Receiving no response to the SNRM command issued, the primary station switches to the IrDA protocols to negotiate a connection and transmits an XID (0x00) command (IrDA station discovery packet). The secondary station responds to the XID (0x00) command, and transmits an XID response.
The following description explains the XID response (IrDA station discovery response) with reference to FIG. 14. FIG. 14 is an explanatory view illustrating a frame of a XID response packet.
The “A field” is the same as the one described above. The A field is “0xFE”, indicating a response packet.
The “C field” is the same as the one described above. The C field is “0x3F”, indicating an XID response packet.
The “format Identifier” field is the same as the one described above; its value is “0x01”.
The “Source device Address” is a field indicating the address of the source device (secondary station), and assumes a value other than “0” and “0xFFFFFFFF”.
The “Destination device Address” is a field indicating the address of the destination device (primary station). In this case, the Destination device Address is equal to the address of the primary station communicated in the Source device Address of the XID command packet.
The “Discovery Flags” is a field as same as the one described above and contains the same value as the Discovery Flags in the XID command packet. For example, if the Discovery Flags of the XID command packet is “0x00”, the Discovery Flags of the XID response are also “0x00”.
The “Slot Number” is a field as the same as the one described above and contains the same value as the Slot Number of the corresponding XID command packet. For example, if the Slot Number of the XID command is “0x00”, the response has a slot number of “0x00”.
The “Version Number” is a field as same as the one described above.
The “Discovery Info” is a field as same as the one described above and contains, for example, station information such as the device name of the secondary station.
After receiving the XID response, the primary station transmits an XID-End command, thereby terminating the station discovery.
Next, the primary station transmits an SNRM command (IrDA connect request). The following description explains an IrDA SNRM command in reference to FIG. 15 is an explanatory view illustrating a frame of the SNRM command packet.
The frame arrangement is substantially the same as the one shown in FIG. 9, except that its Destination device address has the same value as the Source Device Address in the XID response packet during the station discovery. Moreover, no Upper User Data is contained.
In the SNRM command, neither the A field nor the Destination device Address contain a broadcast address. Thus, the secondary station receives this SNRM command as a legal packet specified in the IrDA protocol, and transmits a UA response.
The following description describes the UA response in reference to FIG. 16 is an explanatory view illustrating a frame of a UA response packet. The frame arrangement is substantially the same as the one shown in FIG. 10, except that no Upper User Data is contained.
The primary station receives the UA response, thereby successfully establishing an IrLAP layer connection. Subsequently, connection in the layers above the LAP layer is negotiated.
The XID command packet, XID response packet, SNRM command packet, and UA response packet are all transmitted at 9,600 bps in the station discovery and connecting based on the IrDA protocol. Therefore, after transmitting an XID command packet or an SNRM command packet, the primary station waits for an XID response packet or a UA response packet, ready to inbound packets at 9,600 bps.
As explained above, the communication apparatus which strictly adheres to both the IrDA and IrSimple protocol specifics is capable of connecting to and communicating with a secondary station which strictly adheres to the IrDA protocol specifics or the IrSimple protocol specifics.
Nevertheless, some communication apparatuses do not strictly adhere to the IrDA protocol specifics; they return an IrDA UA response when they receive a broadcast packet. Such a device will be hereinafter referred to as an illegal response sender device. The communication apparatus which strictly adheres to both the IrDA and IrSimple protocol specifics cannot communicate with the illegal response sender device.
The following description explains how a communication apparatus which strictly adheres to both the IrDA and IrSimple protocol specifics attempts to connect to an illegal response sender device with reference to FIG. 17 is signal sequence followed when a primary station, or a communication apparatus which strictly adheres to both the IrDA and IrSimple protocol specifics, attempts to connect to another station, or an illegal response sender device.
As described in FIG. 13, the primary station first sends an SNRM command (IrSimple connect request) and then waits for a UA response from the secondary station at 115.2 kbps.
The A field and the Destination device Address of the SNRM command both contain a broadcast address. Again as described earlier, secondary stations which strictly adhere to the IrDA protocol specifics regard the SNRM command as a broadcast packet and do not return a UA response. The illegal response sender device however recognizes the SNRM command as an IrDA SNRM packet in the violation of the protocols and returns a UA response at 9600 bps.
Meanwhile, the primary station is waiting for a UA response packet at 115.2 kbps, and thus fails to detect the UA response that is transmitted at 9600 bps. Due to lack of a response from the secondary station, the primary station transmits an XID command at 9600 bps as shown in FIG. 11.
On the other hand, the secondary station completed its part of the connection routine upon transmission of the UA response. Therefore, the secondary station is waiting for a next packet (i.e., a connect request packet from the layer above the LAP layer) at the negotiated rate. Therefore, the secondary station cannot detect the XID command transmitted by the primary station at 9600 bps and continues to wait for a packet.
Due to the lack of response to the XID command, the primary station transmits another SNRM command (IrSimple connect request) as shown in FIG. 11, to which the secondary station cannot respond because it is still waiting for a connect request packet from the layer above the LAP layer.
Hence, neither the primary station nor the secondary station can receive a packet transmitted from the opposite station. In due course, a timeout occurs in the stations. The connection attempt thus fails and terminates.
As described above, the communication apparatus which strictly adheres to both the IrDA and IrSimple protocol specifics may fail to communicate with the illegal response sender device.
Citation List
Non Patent Literature 1
Infrared Data Association Serial Infrared Link Access Protocol (IrLAP) Version 1.1 (Jun. 16, 1996)
Non Patent Literature 2
Infrared Data Association Serial Infrared Link Management Protocol (IrLMP) Version 1.1 (Jan. 23, 1996)
Non Patent Literature 3
Infrared Data Association ‘Tiny TP’: A Flow-Control Mechanism for use with IrLMP Version 1.1 (Oct. 20, 1996)
Non Patent Literature 4
Infrared Data Association Object Exchange Protocol Version 1.3 (Jan. 3, 2003)
Non Patent Literature 5
Infrared Data Association IrLAP Fast Connect (Application Note) Version 1.0 (Nov. 27, 2002)
Non Patent Literature 6
IrDA Serial Infrared Link Access Protocol Specification for IrSimple Addition Version 1.0 (Oct. 14, 2005)
Non Patent Literature 7
IrDA Serial Infrared Link Management Protocol Specification for IrSimple Addition Version 1.0 (Oct. 14, 2005)
Non Patent Literature 8
IrDA Serial Infrared Sequence Management Protocol for IrSimple Version 1.0 (Oct. 14, 2005)
Patent Literature 1
International Publication No. 2006/080330 pamphlet (published on Aug. 3, 2006)